Accumulates the total of the input values, allows you to request an amount to be removed, and outputs that requested amount, if it is available. The Holding Tank block is similar to the Accumulate block except that it allows you to request an amount to be removed at each step or event. The amount to be removed is specified at the want connector; the amount is actually output at the get connector, up to the amount available. You can choose to allow output that would make the contents go negative (such as an overdraft); the default is not to allow withdrawals that make the contents go negative.
The Holding Tank block can serve many different uses:
As a bank: The Holding Tank block holds the money in your bank account. The input connector receives money. The C connector shows the balance in the bank account. The want connector requests money be withdrawn from the bank and the get connector is the money you actually withdrew from the bank. Allowing the contents to go negative represents an overdraft.
As a waiting line: The Holding Tank bank holds the number of people in line. New people enter the line at the input connector. The C connector tells how many people are in line at a particular time. The want connector tells how many people are supposed to leave the line at each step. The get connector shows how many people actually left the line. Note that you would not want the contents to go negative in this situation.
As a reservoir: The Holding Tank block holds the water in the reservoir. The input connector receives the amount of water entering the reservoir. The C connector shows the current level of the reservoir. The want connector specifies the amount of water to withdraw from the reservoir at each step. The get connector gives the actual amount of water withdrawn. Note that you would not want the contents to go negative in this situation.
Dialog Choices
Display contents: Displays the number of items (or level) of the tank.
integrated (delay): For business and most scientific applications. Causes the difference of the inputs and the want to be integrated using backward Euler integration. For example, if a source appears at the input, the integration (accumulation) of that source appears at the output at the next time interval (step or event). This is normal behavior for business or most scientific applications because integration is the accumulation of a source over a time period.
integrated (no delay): For higher order differential equations or systems with more than one integrator in a feedback path (cross-coupled or interdependent system). Causes the difference of the inputs and the want to be integrated using forward Euler integration. This usually results in better differential equation convergence and stability in feedback systems. For example, if a source appears at the input at time 1, the effect of that source appears at the output at time 1. This is not normal behavior for business applications because the result of the integration (accumulation) appears instantly when the source changes instead of waiting a time interval (step or event) for the source to be accumulated.
summed (no delay): Causes the contents to be simply added at each step. Don't use this if you want the sum to be related to time periods or fractions of time periods. Use the integrated (delay) choice for most applications.
want can take tank negative: Allows the contents to go negative.
Starting contents: Initial contents of the tank. The s connector overrides this value if it is connected.
Connectors
The input accumulates values at each step or event (NoValues at the input are ignored).
C: Contents (or level) in the tank at the current time.
get: Amount actually removed from the tank at each step or event. This amount is usually what is requested by the want connector. If the tank has fewer contents than the requested amount, and you choose to not let the tank go negative, only the available contents will be output.
R: Setting the R connector to true (a value greater than 0.5) resets the contents to the starting value (either from the Starting contents dialog or from the S connector) which is in effect at the time of reset.
S: Lets you set the starting contents for the tank at the beginning of each simulation run, or you can specify the Starting contents in the dialog (the default is 0). If the S connector is connected, it overrides Starting contents in the dialog. After the first value, subsequent values at the S connector are ignored until the next simulation run, or until the block is reset.
want: Determines how much of the contents is to be removed at each step or event. This amount is output by the get connector if there is sufficient contents.
Animation
The contents of the block at each step/event is represented by a level which rises and falls.
The level assumes a minimum value of 0. The maximum value is continually adjusted to be the maximum received during the run. Subsequent runs change the maximum to be the previous runs' maximum value.